package com.novanok.micurso;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ListView;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import com.novanok.micurso.entidad.Comun;
import com.novanok.micurso.entidad.Curso;
import com.novanok.micurso.entidad.Notificacion;
import com.novanok.micurso.entidad.Profesor;

public class ProfesorNotificacionActivity extends Activity {

    private Curso curso;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.notificacion_profesor_activity);
        Firebase.setAndroidContext(this);

        Comun.getProfesor().setCursoProfesorActivity(this);

        Intent i = this.getIntent();
        Bundle b = i.getExtras();
        this.curso = Comun.getProfesor().devolverCursoPorCursoId(b.getString("curso_seleccionado"));

        if ( Comun.getProfesor() == null || this.curso == null ){
            finish();
        }

        this.actualizarNotificaciones();
    }

    public void actualizarNotificaciones(){
        if (this.curso.getNotificaciones().size() == 0){
            findViewById( R.id.empty ).setVisibility( View.VISIBLE );
        }else{
            findViewById( R.id.empty ).setVisibility( View.INVISIBLE );
        }


        (( ListView ) ProfesorNotificacionActivity.this.findViewById( R.id.lstNotificaciones )).setAdapter(
                new ListaProfesorNotificacionAdapter( ProfesorNotificacionActivity.this, this.curso.getNotificaciones()) );
    }

    public void enviarNotificacion( View v ){
        String texto = ((EditText)findViewById( R.id.txtNotificacion )).getText().toString();

        if ( texto.compareTo("") == 0 ){
            return;
        }

        Notificacion n = new Notificacion();
        n.setDescripcion( texto );

        Firebase notificaciones = new Firebase("https://mi-curso.firebaseio.com/cursos/" + this.curso.getCurso_id() + "/notificaciones");
        notificaciones.push().setValue(n, new Firebase.CompletionListener() {
            @Override
            public void onComplete(FirebaseError firebaseError, Firebase firebase) {
                ((EditText)findViewById(R.id.txtNotificacion)).setText("");
                ProfesorNotificacionActivity.this.actualizarNotificaciones();
            }
        });
    }

    public void eliminarNotificacion( View v ){
        ListaProfesorNotificacionAdapter adapter = ( ListaProfesorNotificacionAdapter )( ( ListView ) findViewById( R.id.lstNotificaciones ) ).getAdapter();
        final Notificacion notificacionSeleccionada = adapter.getItem( ( ( ListView ) findViewById( R.id.lstNotificaciones ) ).getPositionForView( v ) );

        new AlertDialog.Builder( this )
                .setIcon( android.R.drawable.ic_dialog_info )
                .setTitle( ProfesorNotificacionActivity.this.getResources().getString(R.string.verificacion) )
                .setMessage( ProfesorNotificacionActivity.this.getResources().getString(R.string.msgDeleteNot) )
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Firebase noti = new Firebase("https://mi-curso.firebaseio.com/cursos/" + ProfesorNotificacionActivity.this.curso.getCurso_id() + "/notificaciones/" + notificacionSeleccionada.getId());
                        noti.removeValue();
                    }
                })
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        // Nada
                    }
                })
                .show();
    }
}
